//装饰者模式
//在不改变原对象的基础上，通过对其进行包装和拓展，使原有对象可以满足用户更复杂的需求
//列如为input增加新功能
var decorate= function (input,fn) {
    var input = document.getElementById()
    if(typeof input.onclick=== 'function'){
        var oldClickFn = input.onclick
        input.onclick = function () {
            oldClickFn()
            fn()
        }
    }
}
//为input增加了新的功能
//桥接模式
//在系统沿着多个维度变化的同时，又不增加其复杂度并已达到解耦，类似与建造者模式建造者模式，不直接控制每一个属性，而是用其他模块控制